/*
 * HamiltonianMatrix.h
 *
 *  Created on: Feb 14, 2012
 *      Author: Zhang
 */

#ifndef HAMILTONIANMATRIX_H_
#define HAMILTONIANMATRIX_H_

namespace Hamiltonian {
template <class P>
class Scale
{
private:
	double a;
	double b;
public:
	void rescale(HamiltonianMatrix< P >*);
	void restore(P* x, P* y, int len);
};

template <class P>
class HamiltonianMatrix {
private:
	ELL<P> * matrix;
	Scale<P> scale;
public:
	HamiltonianMatrix();
	virtual ~HamiltonianMatrix();
};

} /* namespace Hamiltonian */
#endif /* HAMILTONIANMATRIX_H_ */
